package com.love_weinuo.wxapi;

import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.util.Log;

import com.tencent.mm.opensdk.modelbase.BaseReq;
import com.tencent.mm.opensdk.modelbase.BaseResp;
import com.tencent.mm.opensdk.modelmsg.SendAuth;
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
import com.love_weinuo.application.LoveApplication;
import com.love_weinuo.ui.BaseActivity;
import com.love_weinuo.util.LogUtil;
import com.love_weinuo.util.ToastUtil;

/**
 * Created by sensyang.
 * on 2018/11/12 0012.
 * Email:532245792@qq.com
 * desc:
 */
public class WXEntryActivity extends BaseActivity implements IWXAPIEventHandler {
    private static final String TAG = "WXEntryActivity";
    private static final int RETURN_MSG_TYPE_LOGIN = 1; //登录
    private static final int RETURN_MSG_TYPE_SHARE = 2; //分享
    private Context mContext;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mContext = this;
        //这句没有写,是不能执行回调的方法的
        LoveApplication.getInstance().registerWeChat(this).handleIntent(getIntent(), this);
    }

    // 微信发送请求到第三方应用时，会回调到该方法
    @Override
    public void onReq(BaseReq baseReq) {
        LogUtil.e("1" + baseReq.openId);
        LogUtil.e("2" + baseReq.transaction);
        LogUtil.e("3" + baseReq.toString());
    }

    /**
     * ErrCode	    ERR_OK = 0(用户同意) ERR_AUTH_DENIED = -4（用户拒绝授权） ERR_USER_CANCEL = -2（用户取消）
     * code	        用户换取access_token的code，仅在ErrCode为0时有效
     * state	    第三方程序发送时用来标识其请求的唯一性的标志，由第三方程序调用sendReq时传入，由微信终端回传，state字符串长度不能超过1K
     * lang	        微信客户端当前语言
     * country	    微信用户当前国家信息
     *
     * @param baseResp
     */
    @Override
    public void onResp(BaseResp baseResp) {
        Log.i(TAG, "error_code:---->" + baseResp.errCode);
        int type = baseResp.getType();
        switch (baseResp.errCode) {
            case BaseResp.ErrCode.ERR_AUTH_DENIED:
                ToastUtil.showToast("拒绝授权微信登录");
                finish();
            case BaseResp.ErrCode.ERR_USER_CANCEL:
                String message = "";
                if (type == RETURN_MSG_TYPE_LOGIN) {
                    message = "取消了微信登录";
                } else if (type == RETURN_MSG_TYPE_SHARE) {
                    message = "取消了微信分享";
                }
                ToastUtil.showToast(message);
                finish();
                break;
            case BaseResp.ErrCode.ERR_OK:
                if (type == RETURN_MSG_TYPE_LOGIN) {
                    String code = ((SendAuth.Resp) baseResp).code;
                    Log.i(TAG, "code:------>" + code);
                    finish();
                } else if (type == RETURN_MSG_TYPE_SHARE) {
                    ToastUtil.showToast("微信分享成功");
                    finish();
                }
                break;
        }
    }
}
